package com.jixi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jixi.common.result.PageResult;
import com.jixi.common.result.Result;
import com.jixi.pojo.dto.SchoolRegisterDto;
import com.jixi.pojo.entity.School;

public interface SchoolService extends IService<School> {
	
	/**
	 * 学校注册
	 *
	 * @param schoolRegisterDto 注册信息
	 * @return 注册结果
	 */
	Result schoolRegister(SchoolRegisterDto schoolRegisterDto);
	
	/**
	 * 学校列表
	 *
	 * @param pageNum       页码
	 * @param pageSize      每页数量
	 * @param schoolName    学校名
	 * @param principalName 负责人名
	 * @param status        状态
	 * @return 学校列表
	 */
	Result<PageResult> schoolPage(Integer pageNum, Integer pageSize, String schoolName, String principalName, Integer status);
	
	/**
	 * 学校详情
	 *
	 * @param schoolId 学校id
	 * @return 学校详情
	 */
	School getSchoolInfoById(Long schoolId);
	
	/**
	 * 学校重置密码
	 *
	 * @param schoolId      学校id
	 * @param resetPassword 重置的密码
	 * @return 重置密码结果
	 */
	Result schoolResetPassword(Long schoolId, String resetPassword);
	
	/**
	 * 学校状态修改
	 *
	 * @param schoolId 学校id
	 * @param status   状态
	 * @return 修改结果
	 */
	Result updateSchoolStatus(Long schoolId, Integer status);
	
	/**
	 * 学校删除
	 *
	 * @param schoolId 学校id
	 * @return 删除结果
	 */
	Result deleteSchoolById(Long schoolId);
	
	/**
	 * 学校修改入账账户
	 *
	 * @param schoolId  学校id
	 * @param accountId 账户id
	 * @return 修改结果
	 */
	Result updateSchoolAccount(Long schoolId, Long accountId);
	
	/**
	 * 统计学校数量
	 *
	 * @return 学校数量
	 */
	Long countSchoolNum();
}
